package com.yxinsur.imc.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.business.domain.ImcContractFile;
import com.yxinsur.imc.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 我的保险产品(险种)对象
 *
 * @author imc
 * @date 2021-03-26
 */
@Data
public class ContractVo {
    private static final long serialVersionUID = 1L;

    /**
     * 产品库ID
     */
    @ApiModelProperty("ID")
    private Long id;

    @ApiModelProperty("供应商")
    @Excel(name = "供应商", sort = 1)
    private String supplierName;

    @ApiModelProperty("供应商id")
    private Long repoSupplierId;

    /**
     * 协议名称
     */
    @ApiModelProperty("协议名称")
    @Excel(name = "协议名称", sort = 6)
    private String contractName;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("协议开始日期(含)")
    @Excel(name = "协议开始日期", sort = 7, dateFormat = "yyyy-MM-dd")
    private Date contractStartDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("协议截止日期(含)")
    @Excel(name = "协议截止日期", sort = 8, dateFormat = "yyyy-MM-dd")
    private Date contractEndDate;

    /**
     * 投保日期是否和结算月为同月(-1上月，0同月,1次月)
     */
    @ApiModelProperty("投保日期是否和结算月为同月(-1上月，0同月,1次月)")
    private String applyWithSameMonth;

    /**
     * 投保截止日期
     */
    @ApiModelProperty("投保截止日期")
    private String applyEndDate;

    /**
     * 承保日期是否和结算月为同月(-1上月，0同月,1次月)
     */
    @ApiModelProperty("承保日期是否和结算月为同月(-1上月，0同月,1次月)")
    private String insureWithSameMonth;

    /**
     * 承保截止日期
     */
    @ApiModelProperty("承保截止日期")
    private String insureEndDate;

    /**
     * 回执日期是否和结算月为同月(-1上月，0同月,1次月)
     */
    @ApiModelProperty("回执日期是否和结算月为同月(-1上月，0同月,1次月)")
    private String ackWithSameMonth;

    /**
     * 回执截止日期
     */
    @ApiModelProperty("回执截止日期")
    private String ackEndDate;

    /**
     * 合同影像件URL
     */
    @ApiModelProperty("合同影像件URL")
    private List<ImcContractFile> contractFiles;

    /**
     * 是否主协议
     */
    @ApiModelProperty("是否主协议")
    @Excel(name = "协议类型", sort = 2, dictType = "contract_type")
    private String isMaster;

    /**
     * 主协议主键(如为附加协议)
     */
    @ApiModelProperty("主协议主键(如为附加协议)")
    private Long masterContractId;

    @ApiModelProperty("主协议名称")
    @Excel(name = "所属主协议", sort = 3)
    private String masterContractName;

    /**
     * 是否包含该供应商的全部产品（默认全部产品
     */
    @ApiModelProperty("是否包含该供应商的全部产品（默认全部产品")
    private Integer isContainAllIns;

    /**
     * 协议对应的产品repo_ins_id
     */
    @ApiModelProperty("协议对应的产品信息")
    private List<RepoInsVo> repoInsVoList;

    @ApiModelProperty("协议机构信息")
    private List<ContractOrgVo> contractOrgVoList;

    @Excel(name = "签约机构", sort = 4)
    private String contractOrg;

    @Excel(name = "文件地址", sort = 9, width = 50)
    private String contractUrl;
}
